perm filename TMP1.XGP[VV,BGB] blob sn#135773 filedate 1974-12-16 generic text, type T, neo UTF8
/FONT#0=BASL30/FONT#1=BASI30/FONT#2=NGR40/FONT#3=NGR25/FONT#4=NGR20/FONT#5=BASB30/FONT#6=FIX25
␈↓␈↓↓␈↓α␈↓β␈↓∧␈↓¬␈↓ε
␈↓ ↓H
␈↓ ¬	␈↓αSTANFORD UNIVERSITY
␈↓ ↓H
␈↓ ¬_␈↓βSTANFORD, CALIFORNIA 94305
␈↓ ↓H
␈↓∧ARTIFICIAL INTELLIGENCE LABORATORY␈↓ 
2Telephone:          
␈↓ ↓H
COMPUTER SCIENCE DEPARTMENT␈↓ 
P415-497-4971
␈↓ ↓H

␈↓ ↓H
␈↓␈↓ 	|February 22, 1974
␈↓ ↓H
␈↓␈↓ 	WRevised May 3, 1974
␈↓ ↓H

␈↓ ↓H
␈↓ ¬≥␈↓αGoals for Timesharing␈↓
␈↓ ↓H

␈↓ ↓H
␈↓ ε␈↓R. E. Gorin
␈↓ ↓H
␈↓ ε␈↓J. B. Rubin
␈↓ ↓H

␈↓ ↓H
␈↓ α_[This␈α∞document␈α∞was␈α∞presented␈α∞to␈α∞the␈α∞ARPA␈α∞TENEX␈α∞meeting␈α∞in␈α∞February.␈α
We␈α
solicit␈α
your
␈↓ ↓H
␈↓ ↓Hcomments.]
␈↓ ↓H

␈↓ ↓H
␈↓ α_Potentially,␈α∃TENEX␈α∃offers␈α∃many␈α∃features␈α∃that␈α∃we␈α∃believe␈α∃are␈α∃desirable.␈α∀We␈α∀want␈α∀the
␈↓ ↓H
␈↓ ↓Hadvantages␈αof␈αpaging,␈αpage␈αsharing,␈αpseudo-interrupts,␈α
and␈α
fork-structured␈α
jobs␈α
that␈α
TENEX␈α
offers.
␈↓ ↓H
␈↓ ↓HWe␈α∞would␈α∞like␈α
to␈α
be␈α
able␈α
to␈α
run␈α
TENEX␈α
programs␈α
here,␈α
like␈α
INTERLISP,␈α
as␈α
readily␈α
as␈α
we␈α
now
␈↓ ↓H
␈↓ ↓Hrun␈α
TOPS-10␈α
programs.␈α
However,␈α
we␈α
foresee␈α
some␈α
difficulties␈α
in␈α
putting␈α
TENEX␈α
to␈α
use␈α
here.
␈↓ ↓H

␈↓ ↓H
␈↓ α_We␈α
already␈α
have␈α
a␈αdisplay␈αsystem␈αwith␈α64␈αterminals␈αand␈αsoftware␈αthat␈αhas␈αproved␈αextremely
␈↓ ↓H
␈↓ ↓Hsuccessful,␈α⊂both␈α⊂technically␈α⊂and␈α⊂economically.␈α∂We␈α∂have␈α∂plans␈α∂for␈α∂yet␈α∂fancier␈α∂development␈α∂of␈α∂our
␈↓ ↓H
␈↓ ↓Hdisplay␈αsystem␈αsoftware,␈αbut␈αthere␈αare␈αno␈αdisplay␈αfacilities␈αavailable␈αin␈αTENEX.␈αIt␈αwould␈αrequire␈αa
␈↓ ↓H
␈↓ ↓Hmajor␈αeffort␈αto␈αrestructure␈αthe␈αexisting␈αTENEX␈αconsole␈αservice␈αmerely␈αto␈αgain␈αthe␈αcontinued␈αuse␈αof
␈↓ ↓H
␈↓ ↓Hour␈α
displays.
␈↓ ↓H

␈↓ ↓H
␈↓ α_We␈αhave␈αan␈αIBM␈α3330␈αfile␈αdisk␈α
(85␈α
million␈α
words)␈α
with␈α
reliable␈α
system␈α
software.␈α
We␈α
have␈α
not
␈↓ ↓H
␈↓ ↓Hhad␈α
a␈α
disk␈α
crash,␈α
or␈α
a␈α
disk␈α
refresh,␈α
or␈α
any␈α
file␈α
disk␈α
catastrophe␈α
since␈α
1969.␈α
We␈α
are␈α
accustomed␈αto
␈↓ ↓H
␈↓ ↓Hthis␈α∞reliability;␈α∞we␈α∞are␈α∞unwilling␈α∞to␈α∞settle␈α∞for␈α
less.␈α
We␈α
view␈α
with␈α
distaste␈α
the␈α
TENEX␈α
requirement
␈↓ ↓H
␈↓ ↓Hthat␈α
the␈α
disk␈α
must␈α
be␈α
verified␈α
with␈α
CHECKDSK␈αafter␈αevery␈αcrash.␈αOur␈αoperating␈αenvironment␈αis
␈↓ ↓H
␈↓ ↓Hsuch␈α
that␈α
we␈α
cannot␈α
afford␈α
the␈α
time␈α
required␈α
for␈α
a␈α
disk␈α
audit␈α
every␈α
time␈α
the␈α
system␈α
crashes.
␈↓ ↓H

␈↓ ↓H
␈↓ α_We␈αhave␈αextensive␈αexperience␈αwith␈αoperating␈αsystems.␈αOur␈α
present␈α
system␈α
evolved␈α
as␈α
new␈α
I/O
␈↓ ↓H
␈↓ ↓Hdevices␈α⊃became␈α⊃available.␈α⊃Also,␈α⊃we␈α⊃have␈α⊃modified␈α⊃our␈α⊃system␈α⊃in␈α⊃response␈α⊃to␈α⊃requests␈α⊃from␈α⊂the
␈↓ ↓H
␈↓ ↓Hresearch␈α
staff.␈α
We␈α
were␈α
the␈α
first␈α
PDP-10␈α
system␈αto␈αsupport␈αan␈αIBM␈αdisk,␈αlong␈αbefore␈αsimilar␈αdisks
␈↓ ↓H
␈↓ ↓Hwere␈α⊃available␈α⊃from␈α⊂DEC.␈α⊂We␈α⊂have␈α⊂long␈α⊂experience␈α⊂with␈α⊂two␈α⊂different␈α⊂display␈α⊂systems,␈α⊂the␈α⊂III
␈↓ ↓H
␈↓ ↓Hdisplays␈αand␈αthe␈αData␈αDisk␈αtelevision␈αdisplays.␈αWe␈αhave␈αsought␈αto␈αbe␈αflexible:␈αwe␈αsupport␈αhand-eye
␈↓ ↓H
␈↓ ↓Hreal-time␈α⊃processes␈α⊃while␈α⊃maintaining␈α⊃a␈α⊃time-sharing␈α⊃environment.␈α⊃Our␈α⊂computing␈α⊂resources␈α⊂are
␈↓ ↓H
␈↓ ↓Hlimited;␈αto␈αcontinue␈αmaking␈αthe␈αbest␈αuse␈αof␈αthem␈αwe␈αmust␈αremain␈αflexible.␈αWe␈αrecognize␈αthat␈αas␈αour
␈↓ ↓H
␈↓ ↓Hsystem␈αresponds␈αto␈αthe␈αspecial␈αneeds␈αof␈αour␈αlocal␈αuser␈αcommunity,␈αthe␈αsystem␈αdrifts␈αaway␈αfrom␈αother
␈↓ ↓H
␈↓ ↓Hnon-local␈αdevelopments.␈αOf␈αcourse,␈αours␈αis␈αnot␈αthe␈αonly␈αsystem␈αthat␈αhas␈αdrifted␈α
in␈α
this␈α
way;␈α
there␈α
are
␈↓ ↓H
␈↓ ↓Hvariations␈α
among␈α
the␈α
TENEX␈α
sites.
␈↓ ↓H

␈↓ ↓H
␈↓ α_Our␈α∞goals␈α∞in␈α∞switching␈α∞to␈α∞a␈α∞new␈α
system␈α
are␈α
to␈α
provide␈α
all␈α
the␈α
features␈α
of␈α
TENEX␈α
that␈α
are
␈↓ ↓H
␈↓ ↓Himportant␈αto␈αus,␈αto␈αfurther␈αadvance␈αour␈αhighly␈αdeveloped␈αdisplay␈αsystem,␈αto␈αdevelop␈αa␈αmore␈αflexible
␈↓ ↓H
␈↓ ↓Hfile␈α
system,␈α
and␈α
to␈α
improve␈α
the␈α
efficiency␈α
of␈α
the␈α
entire␈α
system.
␈↓ ↓H

␈↓ ↓H
␈↓ α_The␈α
following␈α
are␈α
the␈α
major␈α
areas␈α
in␈α
which␈α
we␈α
would␈α
like␈α
to␈α
see␈α
TENEX␈α
improved:
␈↓ ↓H

␈↓ ↓H
␈↓ β⊂The␈α
provision␈α
of␈α
suitable␈α
display␈α
services.
␈↓ β⊂
␈↓ ↓H
␈↓ ↓H
␈↓ β⊂The␈α∂provision␈α∂of␈α∞a␈α∞disk␈α∞system␈α∞that␈α∞allows␈α∞an␈α∞arbitrary␈α∞number␈α∞of
␈↓ β⊂
␈↓ β⊂user␈α
file␈α
directories,␈α
each␈α
of␈α
an␈α
arbitrary␈α
size.
␈↓ β⊂
␈↓ ↓H
␈↓ ↓H
␈↓ β⊂Provision␈α
for␈α
removable␈α
volumes␈α
of␈αfile␈αstorage,␈αnon-data␈αareas␈αof␈αa
␈↓ β⊂
␈↓ β⊂file,␈α
and␈α
hierarchical␈α
directories.
␈↓ β⊂
␈↓ ↓H
␈↓ ↓H
␈↓ β⊂Provision␈α∞of␈α∞real-time␈α
service␈α
to␈α
processes␈α
with␈α
special␈α
requirements,
␈↓ β⊂
␈↓ β⊂e.g.,␈α
arm␈α
control.
␈↓ β⊂
␈↓ ↓H
␈↓ ↓H
␈↓ β⊂Elimination␈α
of␈α
the␈α
need␈α
for␈α
running␈α
CHECKDSK␈α
when␈α
the␈α
system␈α
is
␈↓ β⊂
␈↓ β⊂reloaded.
␈↓ β⊂
␈↓ ↓H
␈↓ ↓H
␈↓ β⊂Improvement␈α~of␈α~system␈α~performance␈α~by␈α~decreasing␈α~the␈α~system
␈↓ β⊂
␈↓ β⊂overhead.␈α∞We␈α∞customarily␈α∞run␈α∞48␈α∞users,␈α∞with␈α∞a␈α
load␈α
average␈α
which,
␈↓ β⊂
␈↓ β⊂during␈α⊂prime␈α⊂time,␈α⊂is␈α⊂seldom␈α⊂lower␈α⊂than␈α∂10,␈α∂often␈α∂reaches␈α∂15,␈α∂and
␈↓ β⊂
␈↓ β⊂occasionally␈α
exceeds␈α
20.␈α
With␈α
the␈α
benefit␈αderived␈αfrom␈αnot␈αshuffling
␈↓ β⊂
␈↓ β⊂(which␈α⊗accounts␈α⊗for␈α⊗about␈α⊗one␈α⊗third␈α⊗of␈α⊗our␈α⊗present␈α∃overhead),
␈↓ β⊂
␈↓ β⊂TENEX␈α⊂ought␈α⊂to␈α⊂be␈α⊂more␈α⊂efficient␈α∂than␈α∂our␈α∂system.␈α∂However,␈α∂we
␈↓ β⊂
␈↓ β⊂hear␈α∩reports␈α∩suggesting␈α∩that␈α∩TENEX␈α∩is␈α⊃substantially␈α⊃less␈α⊃efficient
␈↓ β⊂
␈↓ β⊂than␈αour␈αpresent␈αsystem.␈αWe␈α
would␈α
be␈α
quite␈α
unhappy␈α
to␈α
discover␈α
that
␈↓ β⊂
␈↓ β⊂our␈α
limited␈α
resources␈α
were␈α
being␈α
squandered␈α
by␈α
an␈α
inefficient␈α
system.
␈↓ β⊂
␈↓ ↓H
␈↓ ↓H
␈↓ α_These␈αchanges␈α
will␈α
require␈α
more␈α
than␈α
the␈α
mere␈α
replacement␈α
of␈α
certain␈α
system␈α
modules.␈α
Certain
␈↓ ↓H
␈↓ ↓Hinternal␈α⊂structures␈α⊂of␈α⊂TENEX␈α⊂may␈α⊂require␈α⊂substantial␈α∂modifications.␈α∂For␈α∂example,␈α∂the␈α∂proposed
␈↓ ↓H
␈↓ ↓Hdisplay␈α
system␈α
will␈α
probably␈α
require␈α
the␈α
addition␈α
of␈α
a␈α
dynamic␈α
monitor␈α
core␈α
allocation␈α
technique.
␈↓ ↓H

␈↓ ↓H
␈↓ α_We␈α⊃have␈α⊃conducted␈α⊃some␈α⊃internal␈α⊃discussions␈α⊃to␈α⊃decide␈α⊃what␈α⊃desirable␈α⊃features␈α⊂might␈α⊂be
␈↓ ↓H
␈↓ ↓Hincluded␈αin␈αour␈αnext␈αoperating␈αsystem.␈αThese␈αdiscussions␈αhave␈αnot␈αyet␈αprogressed␈αvery␈αfar;␈αwe␈αhave
␈↓ ↓H
␈↓ ↓Houtlined␈α
some␈α
display␈α
services␈α
and␈α
file␈α
system␈α
features␈α
that␈α
we␈α
believe␈α
are␈α
useful.␈α
In␈α
the␈α
following
␈↓ ↓H
␈↓ ↓Hpages,␈α
we␈α
offer␈α
some␈α
of␈α
our␈α
recent␈α
thoughts␈α
on␈α
these␈α
subjects.
␈↓ ↓H

␈↓ ↓H
␈↓ α_We␈α∃feel␈α∃that␈α∃the␈α∃features␈α∃that␈α∃we␈α∃describe␈α∃below␈α∃(although␈α∃they␈α∀may␈α∀require␈α∀further
␈↓ ↓H
␈↓ ↓Hrefinement)␈α∞are␈α∞worthy␈α∞of␈α∞inclusion␈α∞in␈α∞TENEX␈α∞(or␈α∞its␈α∞successor).␈α∞Moreover,␈α∞with␈α∞ARPA␈α∞support,
␈↓ ↓H
␈↓ ↓Hand␈α
with␈α
the␈α
support␈α
of␈α
the␈α
TENEX␈α
community,␈α
we␈α
are␈α
willing␈α
to␈α
undertake␈α
this␈α
implementation.
␈↓ ↓H
␈↓ ¬I␈↓αDisplay Services␈↓
␈↓ ↓H

␈↓ ↓H
␈↓ α_This␈α∞section␈α∞describes␈α∞possible␈α∞system␈α∞features␈α∞relating␈α∞to␈α∞text␈α∞output␈α∞on␈α
a␈α
display␈α
terminal.
␈↓ ↓H
␈↓ ↓HThe␈α
problem␈α
of␈α
graphics,␈α
i.e.,␈α
drawings,␈α
is␈α
not␈α
discussed.
␈↓ ↓H

␈↓ ↓H
␈↓ α_Every␈α
process␈α
has␈α
at␈α
least␈α
one␈α
␈↓↓Display␈α
Pad␈α
␈↓␈α
for␈α
terminal␈α
output␈α
and␈α
other␈α
display␈α
functions.␈α
A
␈↓ ↓H
␈↓ ↓Hpad␈α
is␈α
a␈α
software␈α
concept,␈α
which␈α
may␈α
be␈α
thought␈α
of␈α
as␈α
a␈α
data␈α
file.␈α
The␈α
contents␈α
of␈αa␈αpad␈αmay␈αbe
␈↓ ↓H
␈↓ ↓Hviewed␈αon␈αa␈αdisplay␈αterminal.␈αPortions␈αof␈αmore␈αthan␈αone␈αpad␈αmay␈αbe␈αdisplayed␈αon␈αa␈αsingle␈αterminal
␈↓ ↓H
␈↓ ↓Hsimultaneously.␈α
A␈α
pad␈α
may␈αbe␈αlarger␈αthan␈αthe␈αscreen␈αsize;␈αhence,␈αfeatures␈αwill␈αbe␈αprovided␈αto␈αselect
␈↓ ↓H
␈↓ ↓Hwhich␈αportions␈αof␈αthe␈αpad␈αto␈αdisplay.␈αFigure␈α1␈α
diagrams␈α
the␈α
interaction␈α
between␈α
the␈α
various␈α
parts␈α
of
␈↓ ↓H
␈↓ ↓Hthe␈α
console␈α
service␈α
and␈α
the␈α
user␈α
process.
␈↓ ↓H

␈↓ ↓H
␈↓ ε↓␈↓¬Page Printer␈↓
␈↓ ↓H

␈↓ ↓H
␈↓ α_A␈α∂pad␈α∂may␈α∂be␈α∂operated␈α∂in␈α∂␈↓↓page␈α∂printer␈↓␈α∂mode,␈α∂which␈α∂simulates␈α∂a␈α∂teletype␈α∞in␈α∞the␈α∞following
␈↓ ↓H
␈↓ ↓Hways:
␈↓ ↓H

␈↓ ↓H
␈↓ β⊂Characters␈α
typed␈α
on␈α
a␈α
keyboard␈α
or␈α
output␈α
by␈αa␈αprocess␈αare␈α(usually)
␈↓ β⊂
␈↓ β⊂entered␈α
sequentially␈α
into␈α
the␈α
pad.
␈↓ β⊂

␈↓ β⊂
␈↓ β⊂When␈α
the␈α
area␈α
of␈αthe␈αscreen␈αallocated␈αto␈αthe␈αpad␈αfills␈αup,␈αthe␈αpad␈αis
␈↓ β⊂
␈↓ β⊂automatically␈α
windowed,␈α
a␈α
few␈α
lines␈αat␈αa␈αtime,␈αso␈αthat␈αthe␈αoldest␈αtext
␈↓ β⊂
␈↓ β⊂is␈α∪no␈α∪longer␈α∪visible;␈α∪blank␈α∪lines␈α∪are␈α∪provided␈α∪at␈α∪the␈α∪bottom␈α∪for
␈↓ β⊂
␈↓ β⊂further␈α
display.
␈↓ β⊂
␈↓ ↓H
␈↓ ↓H
␈↓ α_The␈α
user␈α
or␈α
program␈α
can␈α
select␈α
the␈α
following␈α
dispositions␈α
of␈α
pad␈α
data:
␈↓ ↓H

␈↓ ↓H
␈↓ β⊂Discard:␈α
after␈α
the␈α
data␈α
has␈α
left␈α
the␈α
screen,␈α
it␈α
is␈α
gone␈α
forever.
␈↓ β⊂

␈↓ β⊂
␈↓ β⊂Save:␈α
the␈α
data␈αis␈αsaved␈αon␈αa␈αdisk␈αfile.␈αThis␈αallows␈αthe␈αeffect␈αof␈αhard
␈↓ β⊂
␈↓ β⊂copy,␈α∂by␈α∂permitting␈α∂the␈α∂terminal␈α∂session␈α∂to␈α∂be␈α∞listed␈α∞later.␈α∞Also,␈α∞the
␈↓ β⊂
␈↓ β⊂pad␈α∂can␈α∞be␈α∞windowed␈α∞so␈α∞as␈α∞to␈α∞recall␈α∞data␈α∞that␈α∞has␈α∞disappeared␈α∞off
␈↓ β⊂
␈↓ β⊂the␈αtop.␈αThis␈αhas␈αthe␈αsame␈αeffect␈αas␈αrolling␈αthe␈α
paper␈α
backwards␈α
on␈α
a
␈↓ β⊂
␈↓ β⊂teletype.
␈↓ β⊂
␈↓ ↓H
␈↓ ↓H
␈↓ α_Simple␈α∞keyboard␈α∞commands␈α
are␈α
provided␈α
to␈α
freeze␈α
(or␈α
thaw)␈α
the␈α
pad.␈α
Freezing␈α
the␈α
pad␈α
will
␈↓ ↓H
␈↓ ↓Hsuspend␈α∞a␈α∞program␈α∞that␈α∞is␈α∞trying␈α∞to␈α∞output␈α∞to␈α∞it.␈α∞This␈α∞allows␈α∞the␈α
user␈α
to␈α
read␈α
the␈α
contents␈α
of␈α
his
␈↓ ↓H
␈↓ ↓Hscreen␈αat␈αa␈αleisurely␈αpace.␈αThese␈αcommands␈αhave␈αno␈αeffect␈αon␈αthe␈αcontents␈αof␈αthe␈αpad.␈αThawing␈αthe
␈↓ ↓H
␈↓ ↓Hpad␈α
allows␈α
the␈α
process␈α
that␈α
was␈α
blocked␈α
to␈α
continue.
␈↓ ↓H

␈↓ ↓H
␈↓ α_All␈α∞processes␈α∞have␈α∞the␈α∞same␈α∞software␈α∞display␈α∞facilities␈α∞available,␈α∞regardless␈α∞of␈α∞the␈α∞nature␈α∞of
␈↓ ↓H
␈↓ ↓Htheir␈α
terminal.␈α
Also,␈α
processes␈α
without␈α
attached␈α
terminals␈α
have␈α
these␈α
display␈α
facilities.
␈↓ ↓H

␈↓ ↓H
␈↓ α_A␈αdetached␈αjob␈αcan␈αdo␈αterminal␈αinput␈α(from␈αthe␈αinput␈αbuffer)␈α
and␈α
terminal␈α
output␈α
to␈α
its␈α
pads.
␈↓ ↓H
␈↓ ↓HWhen␈α
such␈α
a␈α
job␈α
is␈α
attached␈α
to␈α
a␈α
display␈α
terminal,␈α
the␈α
contents␈α
of␈α
the␈α
pads␈α
may␈α
be␈α
made␈α
visible.
␈↓ ↓H

␈↓ ↓H
␈↓ ∧L␈↓¬Terminal Control of Multiple Processes␈↓
␈↓ ↓H

␈↓ ↓H
␈↓ α_Every␈αprocess␈αhas␈αa␈αkeyboard␈αinput␈αbuffer␈αwhich␈αholds␈αthe␈αdata␈αthat␈αis␈αtyped␈αto␈αthat␈αprocess.
␈↓ ↓H
␈↓ ↓HThe␈α∩user␈α∩can␈α∩switch␈α∩his␈α∩keyboard␈α∩from␈α⊃one␈α⊃process␈α⊃to␈α⊃another␈α⊃by␈α⊃a␈α⊃simple␈α⊃command␈α⊃that␈α⊃is
␈↓ ↓H
␈↓ ↓Hinvisible␈α
to␈α
all␈α
user-level␈α
processes.
␈↓ ↓H

␈↓ ↓H
␈↓ α_The␈αprocess␈αthat␈αis␈αswitched␈αfrom␈αdetects␈αno␈αdifference.␈αCharacters␈αthat␈αwere␈αavailable␈αin␈αthe
␈↓ ↓H
␈↓ ↓Hinput␈αbuffer␈αare␈αstill␈αthere␈αafter␈αthe␈αkeyboard␈αhas␈αbeen␈αswitched␈αaway.␈αThe␈αprocess␈αthat␈αis␈αswitched
␈↓ ↓H
␈↓ ↓Hto␈αsees␈αno␈αdifference,␈α
except␈α
that␈α
if␈α
it␈α
had␈α
been␈α
waiting␈α
for␈α
keyboard␈α
input,␈α
there␈α
is␈α
now␈α
a␈α
possibility
␈↓ ↓H
␈↓ ↓Hthat␈α
some␈α
may␈α
appear.
␈↓ ↓H

␈↓ ↓H
␈↓ α_When␈α
the␈α
keyboard␈α
is␈α
switched,␈α
the␈α
screen␈α
may␈αalso␈αbe␈αswitched␈αfrom␈αdisplaying␈αthe␈αpad␈αof
␈↓ ↓H
␈↓ ↓Hthe␈α⊃old␈α⊃(i.e.,␈α⊂switched␈α⊂from)␈α⊂process␈α⊂to␈α⊂displaying␈α⊂the␈α⊂pad␈α⊂of␈α⊂the␈α⊂new␈α⊂(i.e.,␈α⊂switched␈α⊂to)␈α⊂process.
␈↓ ↓H
␈↓ ↓HHowever,␈α∞the␈α∞screen␈α∞switch␈α∞is␈α
independent␈α
of␈α
the␈α
keyboard␈α
switch.␈α
Also,␈α
it␈α
is␈α
possible␈α
to␈α
have␈α
the
␈↓ ↓H
␈↓ ↓Hpads␈α
from␈α
both␈α
processes␈α
displayed␈α
simultaneously␈α
in␈α
different␈α
areas␈α
of␈α
the␈α
screen.
␈↓ ↓H

␈↓ ↓H
␈↓ α_Keyboard␈α
commands␈α
will␈α
be␈α
provided␈α
to␈α
do␈α
the␈α
following␈α
functions:
␈↓ ↓H

␈↓ ↓H
␈↓ β⊂Call␈α
the␈α
exec␈α
or␈α
monitor,␈α
stop␈α
the␈α
job␈α
and␈α
flush␈α
keyboard␈α
input.
␈↓ β⊂

␈↓ β⊂
␈↓ β⊂Call␈α
the␈α
debugger.
␈↓ β⊂

␈↓ β⊂
␈↓ β⊂Call␈α
(i.e.,␈α
switch␈α
to)␈α
a␈α
particular␈α
process.
␈↓ β⊂

␈↓ β⊂
␈↓ β⊂Display␈α
the␈α
pad␈α
of␈α
a␈α
particular␈α
process.
␈↓ β⊂
␈↓ ↓H
␈↓ ↓H
␈↓ α_When␈α∂switching␈α∂the␈α∂keyboard␈α∂from␈α∂one␈α∂process␈α∂to␈α∂another,␈α∞the␈α∞process␈α∞input␈α∞buffer␈α∞is␈α∞␈↓↓not␈↓
␈↓ ↓H
␈↓ ↓Hflushed.␈α
A␈α
keyboard␈α
input␈α
buffer␈α
is␈α
associated␈α
with␈α
each␈α
process,␈α
not␈α
with␈α
a␈α
physical␈α
terminal.
␈↓ ↓H

␈↓ ↓H
␈↓ α_Debuggers␈α⊂and␈α⊂editors␈α⊂can␈α⊂be␈α⊂expected␈α⊂to␈α⊂have␈α⊂their␈α⊂own␈α⊂screen␈α⊂management␈α∂techniques.
␈↓ ↓H
␈↓ ↓HWhen␈αthe␈αdebugger␈αis␈αa␈αprocess␈αseparate␈αfrom␈αthe␈α
program␈α
being␈α
debugged,␈α
the␈α
keyboard␈α
switching
␈↓ ↓H
␈↓ ↓Hcommands␈α∂can␈α∂be␈α∂used␈α∞to␈α∞alternate␈α∞between␈α∞controlling␈α∞the␈α∞debugger␈α∞and␈α∞typing␈α∞to␈α∞the␈α∞program.
␈↓ ↓H
␈↓ ↓HThis␈α
simplifies␈α
the␈α
debugging␈α
of␈α
the␈α
complex␈α
scanners,␈α
for␈α
example.
␈↓ ↓H

␈↓ ↓H
␈↓ ¬⎇␈↓¬Screen Editor␈↓
␈↓ ↓H

␈↓ ↓H
␈↓ α_Anything␈αin␈αthe␈αpad␈αcan␈αbe␈αaccessed␈αby␈αthe␈αscreen␈αeditor.␈αThe␈αscreen␈αeditor␈αhas␈αfacilities␈αfor
␈↓ ↓H
␈↓ ↓Hmaking␈α∞and␈α∞displaying␈α∞changes␈α∞in␈α∞any␈α∞line␈α∞on␈α∞the␈α∞screen.␈α∞Moreover,␈α∞the␈α
screen␈α
editor␈α
provides␈α
a
␈↓ ↓H
␈↓ ↓Hmechanism␈α
for␈α
moving␈α
lines␈α
around,␈α
deleting␈α
lines,␈α
and␈α
reusing␈α
edited␈α
lines␈α
as␈α
keyboard␈α
input.
␈↓ ↓H

␈↓ ↓H
␈↓ α_Programs␈α
can␈α
interact␈α
with␈α
the␈α
screen␈α
editor␈α
in␈α
several␈α
ways:
␈↓ ↓H

␈↓ ↓H
␈↓ β⊂A␈α
program␈α
can␈α
ask␈α
to␈α
read␈α
a␈α
particular␈α
line␈α
number.
␈↓ β⊂

␈↓ β⊂
␈↓ β⊂The␈α∪screen␈α∪editor␈α∪can␈α∪tell␈α∩a␈α∩program␈α∩the␈α∩line␈α∩number␈α∩that␈α∩it␈α∩is
␈↓ β⊂
␈↓ β⊂reading.
␈↓ β⊂

␈↓ β⊂
␈↓ β⊂The␈α⊂user␈α⊂can␈α⊂give␈α⊂a␈α⊂program␈α⊂a␈α⊂particular␈α⊂line␈α∂from␈α∂the␈α∂screen␈α∂to
␈↓ β⊂
␈↓ β⊂read.
␈↓ β⊂

␈↓ β⊂
␈↓ β⊂Programs␈α
can␈α
load␈α
and␈α
read␈α
the␈α
screen␈α
editor␈α
area.
␈↓ β⊂
␈↓ ↓H
␈↓ ↓H
␈↓ α_The␈α
user␈α
in␈α
interaction␈α
with␈α
the␈α
screen␈α
editor␈α
can␈α
request␈α
the␈α
following␈α
functions:
␈↓ ↓H

␈↓ ↓H
␈↓ β⊂Delete␈α
any␈α
line.
␈↓ β⊂

␈↓ β⊂
␈↓ β⊂Insert␈α
a␈α
line␈α
at␈α
a␈α
given␈α
position.
␈↓ β⊂

␈↓ β⊂
␈↓ β⊂Attach␈α⊃(or␈α⊃copy)␈α⊃and␈α⊃move␈α⊃a␈α⊃group␈α⊃of␈α⊃lines␈α⊂to␈α⊂a␈α⊂different␈α⊂screen
␈↓ β⊂
␈↓ β⊂position.
␈↓ β⊂

␈↓ β⊂
␈↓ β⊂Within␈α⊂any␈α∂line,␈α∂the␈α∂user␈α∂can␈α∂insert,␈α∂delete,␈α∂and␈α∂change␈α∂characters.
␈↓ β⊂
␈↓ β⊂Also␈α∞character␈α∞strings␈α∞can␈α∞be␈α∞attached␈α∞(or␈α∞copied)␈α∞and␈α∞moved.␈α∞This
␈↓ β⊂
␈↓ β⊂set␈αof␈αfeatures␈αis␈αrefered␈αto␈αas␈αthe␈α␈↓↓Line␈αEditor␈↓,␈αbut␈αit␈αis␈αreally␈αpart␈αof
␈↓ β⊂
␈↓ β⊂the␈α
screen␈α
editor.
␈↓ β⊂
␈↓ ↓H
␈↓ ↓H
␈↓ ¬|␈↓¬Character Set␈↓
␈↓ ↓H

␈↓ ↓H
␈↓ α_At␈αStanford␈αwe␈αhave␈αfound␈αthat␈α96-character␈α
ASCII␈α
is␈α
insufficient␈α
for␈α
our␈α
documentation␈α
and
␈↓ ↓H
␈↓ ↓Hprogramming␈α∞needs.␈α∞We␈α∞have␈α∞extended␈α∞ASCII␈α
to␈α
120␈α
graphic␈α
characters.␈α
Since␈α
this␈α
leaves␈α
so␈α
few
␈↓ ↓H
␈↓ ↓Hcontrol␈α∞characters,␈α∞we␈α∞have␈α∞gone␈α∞to␈α∞9-bit␈α∞character␈α∞input.␈α
The␈α
display␈α
services␈α
described␈α
here␈α
can
␈↓ ↓H
␈↓ ↓Hhardly␈α
be␈α
imagined␈α
with␈α
characters␈α
of␈α
fewer␈α
than␈α
8␈α
bits.
␈↓ ↓H

␈↓ ↓H
␈↓ α_However,␈α
we␈αrecognize␈αthat␈α7-bit␈αASCII␈αis␈αstill␈αthe␈αprevalent␈αstandard;␈αhence,␈αwe␈αshall,␈αwhen
␈↓ ↓H
␈↓ ↓Himplementing␈α∩this␈α∩system,␈α∩give␈α∩due␈α∩consideration␈α∩to␈α⊃the␈α⊃problems␈α⊃of␈α⊃users␈α⊃who␈α⊃have␈α⊃standard
␈↓ ↓H
␈↓ ↓Hterminals.
␈↓ ↓H

␈↓ ↓H
␈↓ α_In␈αaddition␈αto␈αour␈αdisplay␈αservice␈αfor␈αlocal␈αusers,␈αwe␈αwould␈αlike␈αto␈αbe␈αable␈αto␈αprovide␈αdisplay
␈↓ ↓H
␈↓ ↓Hservice␈α∃to␈α∃ARPANET␈α∃users.␈α∃This␈α∃would␈α∃probably␈α∀require␈α∀the␈α∀development␈α∀of␈α∀new␈α∀network
␈↓ ↓H
␈↓ ↓Hprotocols,␈α
which␈α
is␈α
a␈α
problem␈α
that␈α
we␈α
are␈α
reluctant␈α
to␈α
discuss␈α
at␈α
this␈α
time.
␈↓ ↓H

␈↓ ↓H
␈↓ ¬∧␈↓¬Program Activation by Typein␈↓
␈↓ ↓H

␈↓ ↓H
␈↓ α_A␈α⊃process␈α⊃can␈α⊃tell␈α⊃the␈α⊃system␈α⊃which␈α⊂characters␈α⊂should␈α⊂be␈α⊂treated␈α⊂as␈α⊂activation␈α⊂characters.
␈↓ ↓H
␈↓ ↓HThus,␈α
processes␈αwith␈αunusual␈αterminal␈αcharacteristics␈αcan␈αbe␈αhandled␈αin␈αa␈αgeneral␈αway.␈αSimilarly,␈αa
␈↓ ↓H
␈↓ ↓Hprocess␈α
can␈α
specify␈α
those␈α
characters␈α
which␈α
will␈α
cause␈α
interrupts.
␈↓ ↓H
␈↓ ¬r␈↓αFile System␈↓
␈↓ ↓H

␈↓ ↓H
␈↓ α_We␈α∞believe␈α∞that␈α∞the␈α∞TENEX␈α∞file␈α∞system␈α∞is␈α
too␈α
simple␈α
for␈α
our␈α
use.␈α
There␈α
are␈α
several␈α
major
␈↓ ↓H
␈↓ ↓Himprovements␈α⊂that␈α⊂we␈α⊂desire.␈α⊂Some␈α⊂of␈α⊂these␈α⊂improvements␈α∂are␈α∂necessary␈α∂merely␈α∂to␈α∂maintain␈α∂the
␈↓ ↓H
␈↓ ↓Hsame␈α
flexibility␈α
that␈α
we␈α
now␈α
enjoy.␈α
Other␈α
improvements␈α
are␈α
suggested␈α
by␈α
the␈α
shortcomings␈αof␈αour
␈↓ ↓H
␈↓ ↓Hpresent␈α
system.
␈↓ ↓H

␈↓ ↓H
␈↓ α_Our␈αpresent␈αfile␈αsystem␈αcontains␈αnearly␈α20,000␈αfiles␈αand␈αmore␈αthan␈α700␈αuser␈αfile␈αdirectories␈α(of
␈↓ ↓H
␈↓ ↓Hwidely␈αvarying␈αsizes).␈αIf␈αwe␈αwere␈αconstrained␈αto␈αthe␈αexisting␈αTENEX␈αscheme␈αof␈αfixed␈αdirectory␈αsize
␈↓ ↓H
␈↓ ↓Hand␈αfixed␈αnumber␈αof␈αdirectories,␈αwe␈αwould␈αbe␈αunhappy.␈αSo,␈αone␈αof␈αour␈αrequirements␈αis␈αthat␈αthe␈αfile
␈↓ ↓H
␈↓ ↓Hsystem␈α
should␈α
be␈α
able␈α
to␈α
adapt␈α
dynamically␈α
to␈α
changing␈α
user␈α
demands.
␈↓ ↓H

␈↓ ↓H
␈↓ α_Our␈α∂present␈α∂file␈α∂system␈α∂devotes␈α∂one␈α∂disk␈α∂drive␈α∂to␈α∂a␈α∂removable␈α∂volume.␈α∞We␈α∞use␈α∞removable
␈↓ ↓H
␈↓ ↓Hvolumes␈α~to␈α~store␈α~the␈α~large␈α~amounts␈α~of␈α→data␈α→associated␈α→with␈α→particular␈α→research␈α→projects.
␈↓ ↓H
␈↓ ↓HUnfortunately,␈αthere␈αis␈αno␈αfile␈αsystem␈αorganization␈αimposed␈αon␈αthat␈αvolume,␈αso␈αonly␈αspecially␈αwritten
␈↓ ↓H
␈↓ ↓Hprograms␈αcan␈αaccess␈αit.␈αWe␈αbelieve␈αthat␈αto␈αmake␈αfull␈αuse␈αof␈αthis␈αfacility,␈αgeneral␈αprograms␈αthat␈αwere
␈↓ ↓H
␈↓ ↓Hnot␈αspecifically␈αwritten␈αto␈αaccess␈αthis␈αdevice␈αshould␈αbe␈αable␈αto␈αaccess␈αit␈αas␈αthough␈αit␈αwere␈αpart␈αof␈αthe
␈↓ ↓H
␈↓ ↓Hfile␈α
system.␈α
We␈α
would␈α
like␈α
removable␈α
volumes␈α
to␈α
be␈α
incorporated␈α
into␈αthe␈αnew␈αfile␈αsystem␈αto␈αallow
␈↓ ↓H
␈↓ ↓Hboth␈α
normal␈α
file␈α
system␈α
access␈α
and␈α
a␈α
special,␈α
unformatted,␈α
access␈α
mode.
␈↓ ↓H

␈↓ ↓H
␈↓ α_Another␈α∞improvement␈α∞that␈α
we␈α
would␈α
like␈α
to␈α
have␈α
is␈α
a␈α
generalized␈α
multi-level␈α
tree-structured
␈↓ ↓H
␈↓ ↓Hdirectory␈αsystem,␈αsimilar␈αin␈αsome␈αrespects␈αto␈αthe␈αfile␈αstructure␈αof␈α
MULTICS.␈α
As␈α
an␈α
aside,␈α
it␈α
might␈α
be
␈↓ ↓H
␈↓ ↓Hmentioned␈α∂that␈α∂the␈α∂original␈α∂implementors␈α∂of␈α∞TENEX␈α∞said␈α∞they␈α∞were␈α∞considering␈α∞implementing␈α∞a
␈↓ ↓H
␈↓ ↓HMULTICS-style␈α⊃file␈α⊃system.␈α⊃We␈α⊃feel␈α⊃that␈α⊃it␈α⊃is␈α⊃now␈α⊃time␈α⊃for␈α⊃that␈α⊃concept␈α⊃to␈α⊃be␈α⊂given␈α⊂renewed
␈↓ ↓H
␈↓ ↓Hconsideration.
␈↓ ↓H

␈↓ ↓H
␈↓ α_We␈α∃have␈α∃recently␈α∃discovered␈α∃several␈α∃applications␈α∃where␈α∃the␈α∃concept␈α∃of␈α∀file␈α∀name␈α∀and
␈↓ ↓H
␈↓ ↓Hextension␈α
are␈α
just␈α
not␈α
general␈α
enough␈α
to␈α
satisfy␈α
our␈α
needs.␈α
Generally,␈α
the␈αproblem␈αwe␈αhave␈αis␈αthat
␈↓ ↓H
␈↓ ↓Hthe␈α
file␈α
data␈α
together␈α
with␈α
the␈α
name␈α
of␈α
the␈α
file␈α
are␈α
not␈α
enough␈α
information␈α
to␈α
adequately␈α
describe␈α
all
␈↓ ↓H
␈↓ ↓Haspects␈α
of␈α
the␈α
file.␈α
Here␈α
are␈α
several␈α
examples␈α
from␈α
our␈α
recent␈α
experience:
␈↓ ↓H

␈↓ ↓H
␈↓ β⊂␈↓βOur␈αeditor,␈αE,␈αmaintains␈αa␈αtable␈αof␈αcorrespondence␈αbetween␈αthe␈αdata␈αin
␈↓ β⊂
␈↓ β⊂the␈α
file␈α
and␈α
the␈α
record␈α
number␈α
where␈α
that␈α
data␈α
can␈α
be␈α
found.␈α
This␈α
table
␈↓ β⊂
␈↓ β⊂appears␈α∪at␈α∪the␈α∪front␈α∪of␈α∪the␈α∪file,␈α∪cleverly␈α∪disguised␈α∪to␈α∪look␈α∩like␈α∩a
␈↓ β⊂
␈↓ β⊂comment␈α⊂to␈α⊂our␈α⊂compilers␈α⊂and␈α⊂assemblers.␈α⊂The␈α∂problem␈α∂here␈α∂is␈α∂that
␈↓ β⊂
␈↓ β⊂other␈α
programs␈α
have␈α
to␈α
be␈α
modified␈α
to␈α
ignore␈α
this␈αkind␈αof␈αcomment.␈αIt
␈↓ β⊂
␈↓ β⊂would␈αbe␈αnice␈αif␈αsuch␈αinformation␈αcould␈αbe␈αassociated␈αwith␈αthe␈αfile,␈αbut
␈↓ β⊂
␈↓ β⊂not␈α
be␈α
part␈α
of␈α
the␈α
data␈α
of␈α
the␈α
file.
␈↓ β⊂

␈↓ β⊂
␈↓ β⊂In␈α∞using␈α∞the␈α
Xerox␈α
Graphics␈α
Printer,␈α
we␈α
prepare␈α
files␈α
that␈α
contain␈α
not
␈↓ β⊂
␈↓ β⊂only␈α∂the␈α∂visible␈α∂text␈α∂but␈α∂invisible␈α∞characters␈α∞that␈α∞cause␈α∞font␈α∞changes
␈↓ β⊂
␈↓ β⊂and␈α∞the␈α∞other␈α∞kinds␈α∞of␈α∞extended␈α∞control␈α∞that␈α∞are␈α∞meaningful␈α∞with␈α
the
␈↓ β⊂
␈↓ β⊂XGP.␈αHowever,␈αthe␈αfont␈αnames␈αare␈αnot␈α
part␈α
of␈α
data␈α
sent␈α
to␈α
the␈α
XGP;␈α
yet
␈↓ β⊂
␈↓ β⊂these␈α∞are␈α∞intimately␈α∞associated␈α∞with␈α∞the␈α∞file.␈α∞Again,␈α∞the␈α∞problem␈α
is␈α
to
␈↓ β⊂
␈↓ β⊂associate␈αsome␈αinformation,␈αi.e.,␈αthe␈αlist␈αof␈αfonts,␈αwith␈αthe␈αfile,␈αyet␈αmake
␈↓ β⊂
␈↓ β⊂this␈α
association␈α
invisible␈α
to␈α
casual␈α
users␈α
of␈α
the␈α
file.
␈↓ β⊂

␈↓ β⊂
␈↓ β⊂We␈α∩would␈α∩like␈α∩to␈α⊃develop␈α⊃a␈α⊃machine-understandable␈α⊃file␈α⊃description
␈↓ β⊂
␈↓ β⊂language;␈α⊃this␈α⊃would␈α⊃enable␈α⊃an␈α⊃intelligible␈α⊃transfer␈α⊃of␈α⊃files␈α⊂between
␈↓ β⊂
␈↓ β⊂radically␈αdifferent␈αmachine␈α
types.␈α
It␈α
would␈α
be␈α
nice,␈α
therefore,␈α
to␈α
be␈α
able
␈↓ β⊂
␈↓ β⊂to␈αstore␈αthe␈αfile␈αdescription␈αalong␈αwith␈αthe␈αfile,␈αbut␈αnot␈α
as␈α
a␈α
part␈α
of␈α
the
␈↓ β⊂
␈↓ β⊂file.
␈↓ β⊂
␈↓ ↓H
␈↓ ↓H
␈↓ α_␈↓There␈αare␈αmany␈αmore␈αexamples␈αthan␈αthese.␈αAlthough␈αany␈αone␈αof␈αthese␈α
cases␈α
could␈α
be␈α
handled
␈↓ ↓H
␈↓ ↓Hby␈α
some␈α
special␈α
technique,␈α
we␈αbelieve␈αthat␈αa␈αuniform␈αapproach␈αis␈αmore␈αdesirable.␈αA␈αtree-structured
␈↓ ↓H
␈↓ ↓Hdirectory␈α
allows␈α
sufficient␈α
flexibility␈α
for␈α
this␈α
purpose.
␈↓ ↓H

␈↓ ↓H
␈↓ ↓HThe␈α∞file␈α∞system␈α∞described␈α∞below␈α
maintains␈α
the␈α
general␈α
storage␈α
organization␈α
found␈α
in␈α
TENEX;␈α
we
␈↓ ↓H
␈↓ ↓Hhave␈αextended␈αit␈αby␈αadding␈αthe␈αconcepts␈αof␈α
␈↓↓node-links␈↓␈α
and␈α
␈↓↓data-links␈↓,␈α
and␈α
by␈α
the␈α
generalization␈α
of␈α
a
␈↓ ↓H
␈↓ ↓Hfile␈α
name␈α
to␈α
more␈α
than␈α
the␈α
five␈α
terms␈α
allowed␈α
in␈α
TENEX.
␈↓ ↓H

␈↓ ↓H
␈↓ ↓HThe␈α∂file␈α∂directory␈α∂is␈α∂tree-structured.␈α∂A␈α∂file␈α∂is␈α∂specified␈α∂by␈α∞a␈α∞pathname␈α∞which␈α∞includes␈α∞the␈α∞device
␈↓ ↓H
␈↓ ↓Hname,␈αthe␈αdirectory␈αowner's␈αname,␈αand␈αthe␈αnames␈αthat␈αare␈αneeded␈αto␈αidentify␈αthe␈αfile.␈αOne␈αimagines
␈↓ ↓H
␈↓ ↓Hthat␈α
the␈α
TENEX␈α
file␈α
name␈α
recognition␈α
scheme␈α
could␈α
be␈α
used␈α
on␈α
each␈α
field␈α
of␈α
the␈α
name.
␈↓ ↓H

␈↓ ↓H
␈↓ ↓HHere␈α
we␈α
have␈α
a␈α
typical␈α
directory␈α
listing␈α
(device␈α
DSK:␈α
assumed):
␈↓ ↓H

␈↓ ↓H
␈↓ε<GORIN>
␈↓ ↓H
␈↓ αHFAIL;3
␈↓ ↓H
␈↓ αH␈↓ βH.DMP;1
␈↓ ↓H
␈↓ αH␈↓ βH.DMP;2
␈↓ ↓H
␈↓ αH␈↓ βH.DOCUMENT;2
␈↓ ↓H
␈↓ αH␈↓ βH␈↓ ∧H.XGPSWITCHES
␈↓ ↓H
␈↓ αH␈↓ βH.FAIL;1
␈↓ ↓H
␈↓ αH␈↓ βH␈↓ ∧H.HISTORY
␈↓ ↓H
␈↓ αH␈↓ βH␈↓ ∧H.DIRECTORY
␈↓ ↓H
␈↓ αH␈↓ βH.FAIL;2
␈↓ ↓H
␈↓ αH␈↓ βH␈↓ ∧H.DIRECTORY
␈↓ ↓H
␈↓ αH␈↓ βH␈↓ ∧H.HISTORY
␈↓ ↓H
␈↓ αH␈↓ βH.GRIPES;1
␈↓ ↓H
␈↓ αH␈↓ βH.PUB;2
␈↓ ↓H
␈↓ αH␈↓ βH␈↓ ∧H.DIRECTORY
␈↓ ↓H
␈↓ αH␈↓ βH␈↓ ∧H.HISTORY
␈↓ ↓H
␈↓ αH␈↓ βH.REL;2
␈↓ ↓H
␈↓ αHOPTIONS
␈↓ ↓H
␈↓ αHMESSAGES
␈↓ ↓H
␈↓ αH␈↓ βH.FAIL␈↓ ∧H@<GORIN>FAIL;3
␈↓ ↓H
␈↓ αH␈↓ βH.SAVEDMSG
␈↓ ↓H

␈↓ ↓H
␈↓ ↓H␈↓Another␈α
interpretation␈α
of␈α
the␈α
structure␈α
of␈α
this␈α
directory␈α
is␈α
given␈α
in␈α
figure␈α
2.
␈↓ ↓H

␈↓ ↓H
␈↓ ε/␈↓¬Nodes␈↓
␈↓ ↓H

␈↓ ↓H
␈↓ α_There␈α∂are␈α∂two␈α∂types␈α∂of␈α∂nodes:␈α∞␈↓↓normal␈α∞nodes␈↓␈α∞and␈α∞␈↓↓link-nodes␈↓.␈α∞Every␈α∞node␈α∞is␈α∞identified␈α∞by␈α∞its
␈↓ ↓H
␈↓ ↓Hpathname.␈α∞Potentially,␈α∞a␈α∞data␈α∞file␈α
and␈α
further␈α
paths␈α
may␈α
exist␈α
at␈α
each␈α
normal␈α
node.␈α
For␈α
example,
␈↓ ↓H
␈↓ ↓Hthe␈α
node␈α
named␈α
<GORIN>FAIL;3␈α
might␈α
contain␈α
as␈α
its␈α
data␈α
portion␈α
a␈α
file␈α
that␈α
says␈α"This␈αnode␈αis
␈↓ ↓H
␈↓ ↓Hfor␈αthe␈α
FAIL␈α
assembler␈α
and␈α
documentation".␈α
The␈α
node␈α
<GORIN>FAIL;3.FAIL;2␈α
contains␈α
as␈α
its␈α
data
␈↓ ↓H
␈↓ ↓Hthe␈α
source␈α
file␈α
for␈α
the␈α
assembler.␈α
The␈α
node␈α<GORIN>FAIL;3.FAIL;2.DIRECTORY␈αcontains␈αas␈αits
␈↓ ↓H
␈↓ ↓Hdata␈αthe␈αcorrespondence␈αbetween␈αthe␈αdata␈αof␈αthe␈αFAIL.FAIL␈αfile␈αand␈αthe␈αrecord␈αnumbers␈αwhere␈αthe
␈↓ ↓H
␈↓ ↓Hdata␈α
is␈α
stored.␈α
This␈α
file␈α
would␈α
be␈α
maintained␈α
by␈α
the␈α
editor.
␈↓ ↓H

␈↓ ↓H
␈↓ α_A␈α∂link-node␈α∂contains␈α∂either␈α∂a␈α∂partial␈α∂pathname,␈α∂or␈α∂a␈α∂full␈α∂pathname␈α∞with␈α∞an␈α∞optional␈α∞page
␈↓ ↓H
␈↓ ↓Hrange␈αspecification.␈αA␈αpartial␈αpathname␈αwill␈αbe␈αsubstituted␈αfor␈αthe␈αportion␈αof␈αthe␈α
pathname␈α
that␈α
has
␈↓ ↓H
␈↓ ↓Hbeen␈αfollowed␈αup␈αto␈αthis␈αpoint.␈αThe␈αfile␈αlookup␈αprocess␈αthen␈αrestarts␈α
using␈α
the␈α
new␈α
pathname.␈α
A␈α
full
␈↓ ↓H
␈↓ ↓Hpathname␈α
may␈α
be␈α
used␈α
to␈α
completely␈α
specify␈α
a␈α
file␈α
and␈α
an␈α
optional␈α
selection␈α
of␈α
pages␈α
from␈α
it.
␈↓ ↓H

␈↓ ↓H
␈↓ ε8␈↓¬Files␈↓
␈↓ ↓H

␈↓ ↓H
␈↓ α_A␈α
file␈α
is␈α
a␈α
collection␈α
of␈α
numbered␈α
pages␈α
that␈α
contain␈α
either␈α
data␈α
or␈α
a␈α
␈↓↓data-link␈↓;␈α
it␈α
is␈α
accessed␈α
as
␈↓ ↓H
␈↓ ↓Hthe␈α
data␈α
portion␈α
of␈α
a␈α
normal␈α
node.
␈↓ ↓H

␈↓ ↓H
␈↓ α_A␈α∞data-link␈α∞is␈α∞a␈α∞full␈α∞pathname␈α∞and␈α∞optional␈α∞page␈α∞range␈α∞specification;␈α∞it␈α
causes␈α
the␈α
(selected
␈↓ ↓H
␈↓ ↓Hrange␈α
of)␈α
pages␈α
of␈α
the␈α
linked␈α
file␈α
to␈α
be␈α
inserted␈α
in␈α
the␈α
data␈α
stream␈α
of␈α
the␈α
file␈α
where␈αthe␈αdata-link
␈↓ ↓H
␈↓ ↓Hoccurred.␈αAt␈αthe␈αend␈αof␈αthe␈αlinked␈αfile,␈αthe␈αdata␈αstream␈αcontinues␈αafter␈αthe␈αpoint␈α
where␈α
the␈α
data-link
␈↓ ↓H
␈↓ ↓Hoccurred.␈α
Data-links␈α
can␈α
nest.
␈↓ ↓H

␈↓ ↓H
␈↓ α_Data-links␈α
can␈α
be␈α
used␈α
in␈α
two␈α
modes:␈α
sequential␈α
access␈α
mode␈α
and␈α
paged␈αmode.␈αIn␈αsequential
␈↓ ↓H
␈↓ ↓Haccess␈αmode,␈αthe␈αlinked␈αfile␈αis␈αinserted␈αinto␈αthe␈αfile␈αwhere␈αthe␈αlink␈αoccurs.␈αIn␈αpaged␈αaccess␈αmode,␈αthe
␈↓ ↓H
␈↓ ↓Hspecified␈αpages␈αof␈αthe␈αlinked␈αfile␈αare␈αfit␈αinto␈αcorresponding␈αholes␈αat␈αand␈αfollowing␈αthe␈αlink.␈αFigure␈α3
␈↓ ↓H
␈↓ ↓Hdepicts␈α
some␈α
of␈α
the␈α
uses␈α
of␈α
data-links.
␈↓ ↓H

␈↓ ↓H
␈↓ α_The␈αmeaning␈αof␈αdata-links␈αin␈αa␈αcore-image␈αfile␈α
(i.e,␈α
paged␈α
access␈α
mode)␈α
is␈α
somewhat␈α
confusing.
␈↓ ↓H
␈↓ ↓HA␈αcore-image␈αfile␈αcontains␈αsome␈αnumber␈αof␈αpages␈αthat␈αbelong␈αin␈αspecific␈αparts␈αof␈αthe␈αaddress␈αspace.
␈↓ ↓H
␈↓ ↓HA␈αproblem␈αarises␈αwhen␈αa␈αdata-link␈αis␈αfound␈αthat␈αindicates␈αmore␈αpages␈αthan␈αthere␈αis␈αroom␈αfor␈αin␈αthe
␈↓ ↓H
␈↓ ↓Hfile.␈α∞For␈α∞example,␈α∞if␈α∞a␈α∞data-link␈α∞specifies␈α∞5␈α∞pages␈α∞of␈α∞the␈α∞linked-to␈α∞file␈α∞and␈α∞there␈α∞are␈α
only␈α
3␈α
pages
␈↓ ↓H
␈↓ ↓Havailable␈α
in␈α
the␈α
linking␈α
file␈α
(i.e.,␈α
the␈α
data␈α
link␈α
page␈α
itself␈α
and␈αtwo␈αunused␈αpages␈αfollowing␈αit,␈αas␈αin
␈↓ ↓H
␈↓ ↓HFigure␈α3)␈αthen␈αonly␈α3␈αpages␈αof␈αthe␈αlinked-to␈αfile␈αcan␈αbe␈αinserted␈αinto␈αthe␈αcore-image.␈αThe␈αdifference
␈↓ ↓H
␈↓ ↓Hbetween␈α
this␈α
and␈α
shared␈α
pages␈α
is␈α
that␈α
linked␈αpages␈αare␈αdescribed␈αby␈αtheir␈αfile␈αname,␈αnot␈αby␈αa␈αdisk
␈↓ ↓H
␈↓ ↓Hpointer.
␈↓ ↓H

␈↓ ↓H
␈↓ α_Of␈α
course,␈α
data-links␈α
can␈α
also␈α
be␈α
written␈α
and␈α
read␈α
as␈α
data.
␈↓ ↓H

␈↓ ↓H
␈↓ α_A␈α∪random␈α∪access␈α∪mode␈α∪is␈α∪provided␈α∪for␈α∪referencing␈α∪specific␈α∩word␈α∩locations␈α∩in␈α∩a␈α∩file.␈α∩In
␈↓ ↓H
␈↓ ↓Hsequential␈αaccess␈αmode,␈αa␈αfile␈αcan␈αbe␈αpositioned␈αat␈αany␈αparticular␈αword␈αaddress,␈αwhich␈αmay␈αpossibly
␈↓ ↓H
␈↓ ↓Hreside␈α
within␈α
a␈α
data-link␈α
file.␈α
In␈α
paged␈α
access␈α
mode,␈α
the␈α
user␈α
may␈α
access␈α
any␈α
word␈α
within␈α
a␈α
page.
␈↓ ↓H

␈↓ ↓H
␈↓ ¬x␈↓¬Subdirectories␈↓
␈↓ ↓H

␈↓ ↓H
␈↓ α_The␈α∀user␈α∀can␈α∀specify␈α∀a␈α∀default␈α∀partial␈α∀pathname␈α∀to␈α∀provide␈α∀a␈α∀shorthand␈α∀notation␈α∪for
␈↓ ↓H
␈↓ ↓Hreferencing␈α∪files.␈α∪This␈α∪is␈α∩an␈α∩obvious␈α∩generalization␈α∩of␈α∩the␈α∩default␈α∩device␈α∩and␈α∩user␈α∩name␈α∩that
␈↓ ↓H
␈↓ ↓HTENEX␈α
provides.
␈↓ ↓H

␈↓ ↓H
␈↓ α_This␈αfacility␈αallows␈αthe␈αeffect␈αof␈α
subdirectories␈α
without␈α
the␈α
usual␈α
difficulties␈α
of␈α
implementation
␈↓ ↓H
␈↓ ↓Hand␈α∞without␈α∞the␈α∞requirement␈α∞that␈α
programs␈α
know␈α
about␈α
subdirectories␈α
as␈α
a␈α
special␈α
case.␈α
To␈α
use␈α
a
␈↓ ↓H
␈↓ ↓Hsubdirectory,␈αa␈αuser␈αcan␈αhave␈αthe␈αtop␈αlevel␈αnames␈αin␈αhis␈αdirectory␈αbe␈αhis␈αsubdirectory␈αnames.␈αThen,
␈↓ ↓H
␈↓ ↓Hby␈αspecifying␈αthat␈α
the␈α
default␈α
pathname␈α
be␈α
his␈α
user␈α
directory␈α
name␈α
followed␈α
by␈α
a␈α
subdirectory␈α
name,
␈↓ ↓H
␈↓ ↓Hall␈α
(default)␈α
references␈α
will␈α
be␈α
to␈α
this␈α
subset␈α
of␈α
his␈α
files.
␈↓ ↓H

␈↓ ↓H
␈↓ ¬b␈↓¬Version Numbers␈↓
␈↓ ↓H

␈↓ ↓H
␈↓ α_The␈α∪TENEX␈α∪version␈α∪number␈α∪feature␈α∪has␈α∪been␈α∪extended␈α∩to␈α∩apply␈α∩to␈α∩each␈α∩term␈α∩in␈α∩the
␈↓ ↓H
␈↓ ↓Hpathname.␈α
Not␈α
all␈α
the␈α
subtle␈α
implications␈α
of␈α
this␈α
concept␈α
have␈α
been␈α
worked␈α
out.
␈↓ ↓H

␈↓ ↓H
␈↓ ¬}␈↓¬Shared Pages␈↓
␈↓ ↓H

␈↓ ↓H
␈↓ α_Pages␈αcan␈αbe␈αshared␈αbetween␈αseveral␈αdifferent␈αfiles.␈αA␈αshared␈αpage␈αbelongs␈αequally␈αto␈αeach␈αof
␈↓ ↓H
␈↓ ↓Hthe␈αfiles␈αthat␈αshare␈αit.␈αA␈αreference␈αcount␈αis␈αkept␈αwith␈αthe␈αpage␈αto␈αtell␈αif␈αit␈αis␈αstill␈αneeded␈α(i.e.,␈αa␈αcount
␈↓ ↓H
␈↓ ↓Hof␈α
the␈α
number␈α
of␈α
files␈α
that␈α
share␈α
this␈α
page).
␈↓ ↓H

␈↓ ↓H
␈↓ ↓HShared␈α
pages␈α
can␈α
be␈α
accessed␈α
in␈α
3␈α
modes:
␈↓ ↓H

␈↓ ↓H
␈↓ β⊂1.␈α∞Shared␈α∞for␈α∞all␈α∞types␈α
of␈α
access␈α
(even␈α
write).␈α
When␈α
one␈α
user␈α
of␈α
the
␈↓ β⊂
␈↓ β⊂page␈α
changes␈α
it,␈α
all␈α
users␈α
of␈α
the␈α
page␈α
see␈α
the␈α
change.
␈↓ β⊂

␈↓ β⊂
␈↓ β⊂2.␈α
Shared␈α
access,␈α
remove␈α
and␈α
copy␈α
on␈α
write.␈α
On␈αa␈αwrite␈αreference␈αto
␈↓ β⊂
␈↓ β⊂the␈αpage,␈αthe␈αdata␈αis␈αcopied,␈αand␈αthe␈αcopy␈αis␈αaffected␈αby␈α
the␈α
write.␈α
No
␈↓ β⊂
␈↓ β⊂association␈α
between␈α
the␈α
page␈α
and␈α
the␈α
file␈α
through␈α
which␈α
this␈α
file-page
␈↓ β⊂
␈↓ β⊂was␈α
accessed␈α
will␈α
exist.
␈↓ β⊂

␈↓ β⊂
␈↓ β⊂3.␈αShared␈αaccess,␈αcopy␈αand␈αmodify␈αfile␈αon␈αwrite.␈αOn␈αa␈αwrite␈αreference
␈↓ β⊂
␈↓ β⊂to␈α⊂the␈α⊂page,␈α⊂the␈α⊂shared␈α∂data␈α∂is␈α∂copied,␈α∂the␈α∂copy␈α∂is␈α∂affected␈α∂by␈α∂the
␈↓ β⊂
␈↓ β⊂write,␈α
and␈α
the␈α
new␈α
page␈α
will␈α
replace␈α
the␈α
old␈α
one␈α
in␈α
the␈α
file␈αthrough
␈↓ β⊂
␈↓ β⊂which␈α
this␈α
page␈α
was␈α
accessed.
␈↓ β⊂
␈↓ ↓H
␈↓ ↓H
␈↓ α_These␈αthree␈αshared␈αaccess␈αmodes␈αare␈αshown␈αgraphically␈αin␈αthe␈αsections␈αof␈αFigure␈α4.␈αFigure␈α4a
␈↓ ↓H
␈↓ ↓Hdepicts␈αthree␈αfiles,␈αI,␈αII␈αand␈αIII␈αwhich␈αshare␈αa␈αsingle␈αpage.␈αFile␈αIII␈αis␈αa␈αcore␈αimage␈αfile.␈αIf␈αthe␈αfile␈αis
␈↓ ↓H
␈↓ ↓Haccessed␈αin␈αmode␈α1,␈αfigure␈α4a␈αapplies,␈αi.e.,␈αno␈αchanges␈αin␈αthe␈αshared␈αaccess␈αpointers␈αare␈αmade.␈αIf␈αthe
␈↓ ↓H
␈↓ ↓Hfile␈αis␈αaccessed␈αin␈αmode␈α2␈αand␈αan␈αattempt␈αis␈αmade␈αto␈αwrite␈αinto␈αthe␈αshared␈αpage,␈αa␈αcopy␈α
is␈α
made␈α
and
␈↓ ↓H
␈↓ ↓Hfile␈αIII␈αwill␈αpoint␈αat␈αthe␈αcopy,␈αas␈αdepicted␈αin␈αfigure␈α4b.␈αFigure␈α4c␈αshows␈αthe␈αresult␈α
of␈α
writing␈α
into␈α
the
␈↓ ↓H
␈↓ ↓Hshared␈αpage␈αin␈αmode␈α3.␈αA␈αcopy␈αof␈αthe␈αpage␈αis␈αmade,␈αand␈αboth␈αfile␈αII␈αand␈αfile␈αIII␈αare␈αmade␈αto␈αshare
␈↓ ↓H
␈↓ ↓Hthe␈α
new␈α
copy.
␈↓ ↓H
␈↓ α_
␈↓ ↓H
␈↓ ¬-␈↓¬Archival Back-up System␈↓
␈↓ ↓H

␈↓ ↓H
␈↓ α_A␈α∩back-up␈α∩system␈α∩will␈α∩be␈α∩integrated␈α∩into␈α∩the␈α∩file␈α∩system.␈α∩The␈α∩following␈α⊃features␈α⊃will␈α⊃be
␈↓ ↓H
␈↓ ↓Hprovided.
␈↓ ↓H

␈↓ ↓H
␈↓ β⊂Whenever␈α⊂a␈α⊂file␈α∂is␈α∂backed-up,␈α∂a␈α∂record␈α∂is␈α∂made␈α∂that␈α∂tells␈α∂precisely
␈↓ β⊂
␈↓ β⊂where␈αthe␈αfile␈αwas␈αwritten.␈αThis␈α
record␈α
can␈α
be␈α
accessed␈α
by␈α
users␈α
when
␈↓ β⊂
␈↓ β⊂they␈α
need␈α
to␈α
restore␈α
their␈α
files␈α
from␈α
the␈α
back-up␈α
medium.
␈↓ β⊂

␈↓ β⊂
␈↓ β⊂File␈αbackup␈αis␈αalways␈αincremental.␈αA␈αfile␈αthat␈αdoes␈αnot␈αchange␈αwill␈αbe
␈↓ β⊂
␈↓ β⊂archived␈α∂only␈α∂a␈α∞fixed␈α∞number␈α∞of␈α∞times␈α∞(depending␈α∞on␈α∞the␈α∞expected
␈↓ β⊂
␈↓ β⊂reliability␈α
of␈α
the␈α
back-up␈αsystem),␈αafter␈αwhich␈αit␈αwill␈αnot␈αbe␈αarchived
␈↓ β⊂
␈↓ β⊂again␈α
unless␈α
it␈α
is␈α
changed.
␈↓ β⊂

␈↓ β⊂
␈↓ β⊂When␈α∩files␈α∩are␈α∩deleted,␈α∩the␈α∩user␈α⊃may␈α⊃specifically␈α⊃request␈α⊃that␈α⊃the
␈↓ β⊂
␈↓ β⊂directory␈α∂entry␈α∂be␈α∞maintained␈α∞for␈α∞the␈α∞purpose␈α∞of␈α∞pointing␈α∞to␈α∞where
␈↓ β⊂
␈↓ β⊂the␈α
file␈α
has␈α
been␈α
backed-up.
␈↓ β⊂
␈↓ ↓H
␈↓ ↓H
␈↓ α_There␈αis␈αa␈αproblem␈αwhen␈αa␈αfile␈αthat␈αis␈αarchived␈αused␈αa␈αshared␈αpage.␈αIn␈αthis␈αcase,␈αthe␈αcontents
␈↓ ↓H
␈↓ ↓Hof␈α⊂the␈α∂shared␈α∂page␈α∂are␈α∂archived␈α∂too,␈α∂but␈α∂no␈α∂information␈α∂exists␈α∂that␈α∂indicates␈α∂that␈α∂the␈α∂page␈α∂was
␈↓ ↓H
␈↓ ↓Hshared.␈α∂When␈α∂such␈α∂a␈α∂file␈α∂is␈α∂retrieved,␈α∂the␈α∞shared␈α∞status␈α∞of␈α∞the␈α∞page␈α∞is␈α∞lost.␈α∞There␈α∞is␈α∞no␈α∞obvious
␈↓ ↓H
␈↓ ↓H(economically␈α
implementable)␈α
remedy␈α
for␈α
this.
␈↓ ↓H
␈↓ ¬s␈↓αApplications␈↓
␈↓ ↓H

␈↓ ↓H
␈↓ α_There␈αwould␈αbe␈αno␈αreason␈αto␈αpropose␈αthese␈αfeatures␈αunless␈αwe␈αfelt␈αthat␈αthere␈αwas␈αa␈αreal␈αneed
␈↓ ↓H
␈↓ ↓Hfor␈α
them.␈α
In␈α
this␈α
section␈α
we␈α
discuss␈α
some␈α
of␈α
the␈αapplications␈αthat␈αhave␈αled␈αto␈αthe␈αproposals␈αwe␈αare
␈↓ ↓H
␈↓ ↓Hmaking.
␈↓ ↓H

␈↓ ↓H
␈↓ α_The␈α
concept␈α
of␈α
a␈α
screen␈α
editor␈α
is␈α
firmly␈α
based␈α
on␈α
our␈α
existing␈α
text␈α
editor,␈α
E.␈α
There␈α
are␈α
two
␈↓ ↓H
␈↓ ↓Hmajor␈α
features␈α
of␈α
E␈α
that␈α
make␈α
it␈α
superior␈αto␈αthe␈αother␈αpopular␈αPDP-10␈αeditors␈α(TECO␈αand␈αSOS).
␈↓ ↓H
␈↓ ↓HThe␈α
first␈α
difference␈α
is␈α
that␈α
E␈α
uses␈αupdate-in-place␈αaccess␈αto␈αthe␈αdisk␈αto␈αmake␈αchanges␈αto␈αthe␈αedited
␈↓ ↓H
␈↓ ↓Hfile.␈α∞The␈α∞second␈α∞difference␈α∞is␈α∞that␈α∞it␈α∞takes␈α∞advantage␈α∞of␈α∞our␈α∞display␈α∞facilities␈α∞to␈α∞display␈α∞an␈α
entire
␈↓ ↓H
␈↓ ↓Hscreenful␈α
of␈α
text.
␈↓ ↓H

␈↓ ↓H
␈↓ α_The␈αadvantage␈αof␈αupdate-in-place␈αis␈αthat␈αthe␈αcost␈αof␈αmaking␈αincremental␈αchanges␈αto␈αthe␈αfile␈αis
␈↓ ↓H
␈↓ ↓Hvery␈α∪small.␈α∪TECO␈α∪and␈α∪SOS␈α∪both␈α∩work␈α∩by␈α∩recopying␈α∩the␈α∩file,␈α∩which␈α∩often␈α∩results␈α∩in␈α∩a␈α∩poor
␈↓ ↓H
␈↓ ↓Hutilization␈α∂of␈α∂CPU␈α∞time,␈α∞channel␈α∞capacity,␈α∞and␈α∞disk␈α∞space.␈α∞E␈α∞makes␈α∞editing␈α∞large␈α∞files␈α∞very␈α∞much
␈↓ ↓H
␈↓ ↓Hmore␈α
convenient.␈α
The␈α
random␈αaccess␈αfacility␈αthat␈αit␈αuses␈αallows␈αparticular␈αportions␈αof␈αthe␈αfile␈αto␈αbe
␈↓ ↓H
␈↓ ↓Hlocated,␈αread␈αin,␈αmodified,␈αand␈αwritten␈αvery␈αquickly.␈αTECO␈αor␈αSOS␈αmust␈αsearch␈αfor␈αthe␈αright␈αplace
␈↓ ↓H
␈↓ ↓Hin␈αthe␈αfile,␈αmake␈αthe␈αchanges,␈αand␈αappend␈αthe␈αunchanged␈αportion␈αat␈αthe␈αend␈αof␈αthe␈αinput␈αfile␈αto␈αthe
␈↓ ↓H
␈↓ ↓Houtput.
␈↓ ↓H

␈↓ ↓H
␈↓ α_The␈α∂advantage␈α∂of␈α∂a␈α∂full␈α∂screen␈α∂display␈α∞of␈α∞the␈α∞edited␈α∞file␈α∞is␈α∞obvious:␈α∞the␈α∞display␈α∞shows␈α∞the
␈↓ ↓H
␈↓ ↓Hcontext␈αin␈αwhich␈αeach␈αline␈αoccurs.␈αThis␈αis␈αextremely␈αhelpful␈αfor␈αwriting␈αprograms␈αand␈αdocuments.␈αE
␈↓ ↓H
␈↓ ↓His␈α
easy␈α
to␈α
use;␈α
our␈α
secretaries␈α
have␈α
adopted␈α
it␈α
voluntarily.
␈↓ ↓H

␈↓ ↓H
␈↓ α_The␈αscreen␈αeditor,␈αas␈αa␈αsystem␈αfacility,␈αwill␈αmove␈αsome␈αof␈αthe␈αscreen␈αmanipulation␈αcapabilities
␈↓ ↓H
␈↓ ↓Hof␈α
E␈α
out␈αof␈αa␈αuser␈αprocess␈αand␈αinto␈αthe␈αoperating␈αsystem.␈αThroughput␈αis␈αincreased␈αbecause␈αno␈αuser
␈↓ ↓H
␈↓ ↓Hprocess␈α∞is␈α∞scheduled␈α∞(and␈α∞swapped␈α∞in)␈α∞to␈α
handle␈α
the␈α
simple␈α
interactions.␈α
Even␈α
our␈α
existing␈α
system
␈↓ ↓H
␈↓ ↓Hline␈α
editor␈α
has␈α
increased␈α
throuhput␈α
(and␈α
user␈α
happiness)␈α
substantially.
␈↓ ↓H

␈↓ ↓H
␈↓ α_A␈αnew␈αversion␈αof␈αE␈αcould␈αtake␈αadvantage␈αof␈αthe␈αscreen␈αeditor.␈αE␈αloads␈αthe␈αscreen␈αeditor␈αwith
␈↓ ↓H
␈↓ ↓Hdata␈α
from␈α
the␈α
file␈α
being␈α
edited.␈α
The␈α
user,␈α
interacting␈αwith␈αthe␈αscreen␈αeditor,␈αchanges␈αthe␈αdisplayed
␈↓ ↓H
␈↓ ↓Htext.␈α
When␈α
the␈α
user␈αgives␈αa␈αcommand␈αthat␈αE␈αhas␈αselected␈αas␈αan␈αactivator,␈αthe␈αsystem␈αwill␈αpass␈αthat
␈↓ ↓H
␈↓ ↓Hcommand␈α
to␈α
E␈α
which␈α
reads␈α
the␈α
contents␈α
of␈α
the␈αscreen␈αeditor␈α(pad)␈αand␈αwrites␈αthe␈αchanges␈αinto␈αthe
␈↓ ↓H
␈↓ ↓Hfile.
␈↓ ↓H

␈↓ ↓H
␈↓ α_E␈αmaintains␈αa␈αdirectory␈αof␈αthe␈αfile␈αwhich␈αtells␈αthe␈αcorrespondence␈αbetween␈αthe␈αtext␈αof␈αthe␈αfile
␈↓ ↓H
␈↓ ↓Hand␈αthe␈αrecord␈αnumber␈αwhere␈αthat␈αtext␈αis␈αstored.␈αThis␈αdirectory␈αis␈αcleverly␈αdisguised␈αas␈αa␈αcomment.
␈↓ ↓H
␈↓ ↓HHowever,␈α
some␈α
processes␈α
do␈α
not␈α
recognize␈α
this␈α
format␈α
of␈α
comment,␈αso␈αwhen␈αthey␈αread␈αthis␈αkind␈αof
␈↓ ↓H
␈↓ ↓Hfile,␈α
they␈α
get␈α
confused.␈α
We␈α
would␈α
like␈α
a␈α
facility␈α
for␈α
hiding␈αthis␈αkind␈αof␈αinformation␈αfrom␈αordinary
␈↓ ↓H
␈↓ ↓Hprocesses␈αwhich␈αwant␈αonly␈α
the␈α
data.␈α
Another␈α
application␈α
for␈α
this␈α
is␈α
the␈α
␈↓↓history␈α
page␈↓␈α
which␈α
contains␈α
a
␈↓ ↓H
␈↓ ↓Hhistory␈α
of␈α
the␈α
changes␈α
made␈α
to␈α
this␈α
file.
␈↓ ↓H

␈↓ ↓H
␈↓ α_An␈α∂interesting␈α∂process,␈α∂the␈α∂␈↓↓Directory␈α∂Editor␈↓,␈α∞may␈α∞be␈α∞implemented.␈α∞This␈α∞process␈α∞displays␈α∞the
␈↓ ↓H
␈↓ ↓Huser's␈α⊂directory.␈α⊂Interacting␈α⊂with␈α⊂the␈α⊂screen␈α⊂editor,␈α⊂the␈α∂user␈α∂will␈α∂be␈α∂able␈α∂to␈α∂make␈α∂changes␈α∂to␈α∂the
␈↓ ↓H
␈↓ ↓Hdisplay␈α∞which␈α∞will␈α∞be␈α∞reflected␈α∞in␈α∞changes␈α∞to␈α∞his␈α∞file␈α∞directory.␈α∞This␈α∞is␈α∞a␈α
very␈α
natural␈α
scheme␈α
for
␈↓ ↓H
␈↓ ↓Hmanipulation␈α
of␈α
these␈α
tree-structured␈α
directories.
␈↓ ↓H

␈↓ ↓H